﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Buccontrols;
using PluginInterface;
using Buccaneer;
using System.IO;

namespace ExamplePlugin
{
    public class OpenAction : PluginAction
    {
        public OpenAction(IPlugin plugin)
        {
            // dit is de contructor
            base.name = "open";
            base.plugin = plugin;
            base.func = new ActionFunction(this.OpenFile);
            base.pars.Add("path", "optional: the path of the file to open");
            base.exceptions.Add("System.IO.IOException", new ActionFunction(ReadWriteError));
        }

        public void OpenFile(string[] args)
        {
            // dit is de functie
            string filename = "";
            if (args == null || args[0] == "")
            {
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.DefaultExt = "*.txt";
                ofd.Filter = "Tekstbestanden|*.txt|Alle bestanden|*.*";
                ofd.RestoreDirectory = true;
                ofd.Title = "Open een tekstbestand";
                ofd.ValidateNames = true;
                ofd.ShowDialog(this.plugin.MainInterface);
                filename = ofd.FileName;
            }
            else
                filename = args[0];
            StreamReader sr = new StreamReader(filename);
            (base.plugin.MainInterface as Interface).LoadText(sr.ReadToEnd());
        }

        public void ReadWriteError(string[] args)
        {
            // dit is de functie die uitgevoerd wordt als er iets mis gaat met het lezen van het bestand
            Options.WriteComment("(x) Het ging mis bij het lezen van het bestand!");
        }
    }
}
